1. Field of the Invention
The present invention relates generally to event processing, and in particular to associating the color of an object with an event.
Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
2. Background Art
When using a computer or other interactive device a user can interact with the device in various ways. One way is to use a mouse. The user utilizes the mouse to position a pointer somewhere on a screen. The user then depresses a mouse button and depending on where the pointer is, something pre-programmed will happen if that area of the screen is “hot”.
In the context of the Internet, the user can position the mouse pointer over a hot spot “hyperlinked” to a web page and depress the mouse button. This will cause the computer, set-top box, or other device to send a signal to a server to retrieve that web page and display it on the computer screen.
We foresee the desirability to interact in this manner in many different contexts, not only linking with web pages. Current schemes are limited in the contexts that a user may interact. Before further describing the limitations of current schemes, a discussion of event processing is instructive.
Event Processing
“Event processing” refers to the association between some type of “action” and the occurrence of an “event”. Such a term is used herein in the context of a user's computing experience. The user performs an action followed by an event, followed by a series of other actions followed by other events.
An action occurs when a user positions a cursor in a specified location on a computer screen, for instance using a mouse, and depresses one of the mouse buttons. This example shows a common type of action, but many other actions exist as well within the context of computer event processing, including the input of text, a voice command, or any other type of action.
The example action may take place in any computing environment, but one common environment that the action occurs is in a web browser. A web browser is a graphical user interface that enables users to utilize the Internet, for instance by viewing web pages. Normally the user will position the mouse pointer over a “hyperlink” and depress the mouse button there. This, in turn, triggers an event. The event in this example is to cause a server to retrieve another web page. Thus, in this example, the user interacts with the Internet by a series of actions followed by events.
Current event processing is disadvantageous, in part, because the types of actions available and the events initiated by the actions are limited. Before further discussing the drawbacks of current event processing, an overview of the Internet is provided below.
Internet
The information network known as the “Internet” has become increasingly popular. The Internet provides a body of information which may be accessed by users via computers for such purposes as business, education, and entertainment. In particular, the Internet includes a large collection of interconnected documents, images, sounds, videos, and other forms of media which are stored in computers in a system known as the World Wide Web or simply “the web”.
Internet resources are typically accessed in a two-way environment via a network connection. For example, connectivity to the network may be via a conventional twisted-pair telephone line which has a relatively low data-carrying capacity (e.g., bandwidth), or via a higher bandwidth path, which may comprise optical fiber, coaxial cable, ISDN, xDSL, wireless connections, or other transmission mechanisms. To retrieve data from a network destination (e.g., an Internet site), a user sends a message to the network destination to request the transfer of information to the user's computer, referred to as a client. The network destination typically includes a computer known as a server. The server then sends a request signal to a source function, which may be a memory which is coupled to the server. The source function includes the user-requested information which may comprise, for example, text, graphics, audio and/or video data. In response to the request signal from the server, the source function provides the requested information to the client.
HTML
Source information which is stored in the source function is often stored in a format known as “Hypertext Markup Language (HTML)”. This file or script format allows the display of text, graphics and audio information, and provides links to other pages of information through “hyperlinks.” Hyperlinks are strings of characters in a particular format that specify the address of the desired page of information.
HTML is a system for marking documents to indicate how the document should be displayed, and how various documents should be linked together. HTML is a form of Standard Generalized Markup Language (SGML), defined by the International Standards Organization. HTML specifies the grammar and syntax of markup tags which are inserted into a data file to define how the data will be presented when read by a computer program known as a “web browser”. Conventional web browsers include Internet Explorer, Netscape Navigator, and others.
The data file, which is typically stored on a server, includes one or more web pages which are visited by users who have computers which may run different browsers. When a page is visited, HTML data output from the server is downloaded to the client computer. The client computer's browser processes the data to format a layout for the page so the page may be viewed by the user on a computer screen. Generally, HTML tags provide text formatting, hypertext links to other pages, and links to sound and image elements. HTML tags also define input fields for interactive web pages.
An HTML application is made available to users on the web by storing the HTML file in a directory that is accessible to a server. Such a server is typically a web server which conforms to a web browser-supported protocol known as Hypertext Transfer Protocol (HTTP). Servers that conform to other protocols such as the File Transfer Protocol (FTP) or GOPHER may also be used, but do not support interactive HTML files.
HTTP defines a set of rules that servers and browsers follow when communicating with each other. Typically, the process begins when a user accesses an icon in an HTML page which is the anchor of a hyperlink, (for instance, by positioning a cursor on the icon and depressing a mouse button), or the user inputs a Uniform Resource Locator (URL) to his or her web browser, described below. A connection is then made to the server at the address and port number specified by the URL. Next, the browser sends a request to retrieve an object from the server, or to post data to an object on the server. The server sends a response to the browser including a status code and the response data. The connection between the browser and server is then closed.
URL
A URL is a unique address which identifies virtually all files and resources on the Internet. A URL has the form:                method://server:port/path/file#anchor.The “method” of accessing the resource is the web browser-supported protocol, and may include, for example, HTTP, FTP, GOPHER, TELNET, NEWS, or MAILTO. The “server:port” indicates the name of the server which is providing the resource, and is alternatively known as the Internet domain name. For example, many businesses will use their business name as part of the server field. The port designation is the port number on the server, but is usually not used since a default port is assumed. The “path” indicates the directory path to the resource. The file indicates the file name of the resource. The “anchor” indicates the named element in the HTML document. Not all fields are required.        
Consider the following URL, for example:                http://www.business.com/information/profits.html#section—1.The access method is HTTP, the server is www.business.com, there is no port specified, the path is news, the file is profits.html, and the anchor is section—1.        
Thus, it may be seen that web browsers operate in a two-way communication environment to access information by sending a request signal defined by a URL command to a server, and receiving information in return.
Current Event Processing Schemes
In the context of the Internet, event processing has been limited by the nature of the web. Originally, the web was largely a textual body of interconnected information. Actions were limited to depressing a mouse button on a text link which initiated the event of retrieving another web page from a specified URL. These methods are disadvantageous because they are static. Such events have no application in an active environment, for instance where streaming video or television signals are involved, and such events have no application outside of a web browser (i.e., where a GUI is translating HTML commands into actions).
As the web evolved, other types of event processing have emerged. In particular, the web evolved to have a more active nature. First, the text-based web became merged with images. The images resided in various formats and could also be used to associate an action with an event. The images, however, suffered the same drawback as the text and essentially performed the same function. For instance, the images were used in the same event context (e.g., depressing a mouse button on the image) and the same actions resulted (e.g., the image caused a server to send another web page to the user).
After images came more active web environments. One example came in the form of animation where a sequential series of images are displayed in the web browser which cause the image to appear to move on the screen. To allow the user to act upon an animated image, one scheme takes each frame of the animated image and pre-determines where on that individual frame a potential action should be associated with an event.
For instance, imagine an animation of a runner holding a baton where the runner is moving horizontally across the screen and the desired action is to depress a mouse button when the pointer is over the baton. In this example, assume the animation consists of 100 images. Using one scheme, the 100 images are each individually stored in a computer and each image is analyzed to find where the baton was on the screen.
Along with each of the 100 images is an image map specifying that in frame 1 the boundary of the baton is in a first position and in frame 2, the boundary of the baton is in a second position. To map to these positions, the prior art essentially draws a wire frame around the baton in each frame. Therefore, 100 wire frames must be drawn in varying locations. The baton in a moving image varies in position and angle. This in turn varies the shape of the wire frame in each frame of the image.
The prior scheme is extremely disadvantageous because it requires a tremendous amount of manual pre-processing to draw 100 varied size wire frames. Such preprocessing contains a large lag on overhead. This scheme also must store each and every potential action in a computer and then wait for the action to occur. This technique uses a large amount of the computer's storage space and a large amount of time to create the wire frames. This scheme, in addition, is bound to a web browser implementation and may only trigger events relating to the accessing of a web page at a specified URL.
As the web has developed more recently, such schemes have become even less advantageous. Specifically, the web has expanded away from a static model and now incorporates other technologies, such as television and other signals. The web through this expansion has also moved to other media forms, such as “set-top boxes” and interactive television sets where the user interacts with the web using a conventional television set as an output device. With these other media forms and other environments, other types of GUIs (not only web browsers) and other types of actions (not only the retrieval of a web page from a specific URL) are desired. However, there is currently no efficient way to process events in such environments.